#ifndef __NOLOCK_QUEUE_H__
#define __NOLOCK_QUEUE_H__
#include <stdint.h>

#include "ringbuffer.h"

#ifdef __cplusplus
extern "C" {
#endif

typedef ringbuffer_t queue_nolock_t;

extern queue_nolock_t *queue_nolock_create(const uint16_t size);
extern void queue_nolock_destroy(queue_nolock_t *queue);
extern int queue_nolock_empty(queue_nolock_t *queue);
extern int queue_nolock_full(queue_nolock_t *queue);
extern int queue_nolock_size(queue_nolock_t *queue);
extern void queue_nolock_clear(queue_nolock_t *queue);
extern int queue_nolock_push(queue_nolock_t *queue, void *item);
extern void *queue_nolock_pop(queue_nolock_t *queue);

#ifdef __cplusplus
}
#endif

#endif
